home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / ISSUE18 / MEMORY / LISTING2.PAS < prev   
Encoding:
Pascal/Delphi Source File  |  1997-01-17  |  585 b   |  23 lines

  1. Function GetBaseMemFree: longint;
  2. var
  3.      AllocatedBlock,
  4.      Maximum, Minimum:    longint;
  5.      FreeBlock:        word;
  6. begin
  7.         {Maximum amount of DOS memory = 1 M}
  8.         Maximum:= $100000  
  9.         Minimum:=   $0;
  10.         while Maximum > Minimum do begin
  11.     Result:= (Maximum + Minimum) div 2;
  12.     AllocatedBlock:= GlobalDosAlloc (Result);
  13.     {CanÆt allocated block}
  14.     if AllocatedBlock = 0 then Maximum:= Result
  15.     else begin
  16.         FreeBlock:= AllocatedBlock and $FFFF;
  17.         GlobalDosFree (FreeBlock);
  18.         Minimum:= Result +1;
  19.     end; 
  20.         end; {while}
  21. end; {GetBaseMemFree}
  22.  
  23.